Variables in Robot Framework
Variables in Robot Framework help make tests dynamic, reusable, and maintainable. They allow you to avoid hardcoding values and manage test data efficiently.
Why Variables Are Important
Without variables:
- Tests become hard to maintain
- Data changes require code changes
- Reuse becomes difficult
With variables:
- Tests are flexible
- Configuration is centralized
- CI/CD execution is easier
Types of Variables
Robot Framework supports three main variable types.
1. Scalar Variables
- Hold a single value
- Syntax:
${variable}
${URL} https://example.com
${BROWSER} chrome
2. List Variables
- Hold multiple values
- Syntax:
@{list}
@{CREDENTIALS} admin secret
Accessing list values:
${CREDENTIALS}[0]
3. Dictionary Variables
- Store key-value pairs
- Syntax:
&{dict}
&{USER} username=admin password=secret
Accessing dictionary values:
${USER}[username]
Variable Scope
Robot Framework variables have different scopes.
Test Scope
- Available only within a single test case
Suite Scope
- Available across all tests in a suite
Global Scope
- Available across all suites
Choosing correct scope avoids data leakage issues.
Variable Files
Variables can be stored in:
.robotvariable files- Python files
- YAML / JSON files
Used for:
- Environment data
- Credentials
- URLs
- Config values
Overriding Variables at Runtime
Variables can be overridden during execution:
robot --variable BROWSER:chrome tests/
This is commonly used in CI/CD pipelines.
Common Mistakes ❌
- Hardcoding values
- Using global variables unnecessarily
- Mixing test data with logic
Best Practices ✅
- Externalize environment-specific data
- Use dictionaries for structured data
- Limit global variable usage
- Use meaningful variable names
Key Takeaways
- Variables make tests flexible
- Three types: scalar, list, dictionary
- Scope control is critical
- Variable files improve maintainability